<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Atractivo_frm( $this );

	class Atractivo_frm extends Frm
	{
	function Atractivo_frm( &$oModule )
		{
			$this->Frm( $oModule );
			//Crea los Objetos de los campos de edicion
			$this->aFields['ncAtractivo']					= new Input("Codigo","ncAtractivo", '', false, true);
			$this->aFields['ncEstablecimiento']		= new InputLookUp( "Establecimiento", "ncEstablecimiento" );
			$this->aFields['cdAtractivo']					= new InputText( "Nombre", "cdAtractivo" );
			$this->aFields['cInauguracion']			= new InputText( "Inauguracion", "cInauguracion" );
			$this->aFields['cAutores']					= new InputText( "Autores", "cAutores" );
			$this->aFields['bImperdible']				= new InputList( "Imperdible", "bImperdible" );
			$this->aFields['ncTipoAtractivo']			= new InputList( "Tipo", "ncTipoAtractivo" );
			$this->aFields['cDescripcion']				= new InputText( "Descripcion", "cDescripcion" );
			$this->aFields['ncCategoriaRecorrido']= new InputList( "Categoria", "ncCategoriaRecorrido" );
			$this->aFields['ncValoracion']				= new InputList( "Valoracion", "ncValoracion" );
			$this->aFields['ncCaracter']					= new InputList( "Caracter", "ncCaracter" );
			//$this->aFields['ncTipoCartel']				= new InputList( "TipoCartel", "ncTipoCartel" );
			$this->aFields['bEspacioPublico']			= new InputList( "Espacio publico", "bEspacioPublico" );
			$this->aFields['cHorarios']					= new InputText( "Horarios", "cHorarios" );
			$this->aFields['aValores']					= new InputCheck( "Valores", "aValores" );
			$this->aFields['aRotulo']						= new InputCheck( "Tags" , "aRotulo" );
			$this->setMultiLanguage();
		}

	function setValue( $ncAtractivo )
		{
			$cSql = "SELECT ncAtractivo, cdAtractivo, cDescripcion, ncEstablecimiento, bImperdible, ncTipoAtractivo, cInauguracion, cAutores, ncCaracter, bEspacioPublico, cHorarios
								FROM gtAtractivo as Rec
								WHERE Rec.ncAtractivo = $ncAtractivo";
			$aRow = $this->oDatabase->getArray($cSql);
			$this->setFieldsArray ( $aRow );
			return $aRow;
		}
	function setLevel( $nLevel)
		{
			switch ( $nLevel )
			{
				case 2:
					$cSql = "SELECT ncCategoriaRecorrido FROM gtRecorrido WHERE ncRecorrido = " . getParam('ncRecorrido');
					$ncCategoriaRecorrido =  $this->oDatabase->getData($cSql)   ;
					switch( $ncCategoriaRecorrido  )
					{
						// Mi Baq
						case 15:
							$this->aInput = array( 'ncAtractivo', 'ncEstablecimiento', 'cHorarios' , 'cdAtractivo','cAutores','cInauguracion', 'ncTipoAtractivo', 'aValores' , 'ncCaracter', 'bEspacioPublico');
							break;
						case 17:// Mi Baq
							$this->aInput = array( 'ncAtractivo', 'ncEstablecimiento', 'cdAtractivo', 'ncTipoAtractivo' );
							break;
						default:
							$this->aInput = array( 'ncAtractivo', 'ncEstablecimiento', 'cdAtractivo','cAutores','cInauguracion', 'ncTipoAtractivo', 'aValores', 'cDescripcion' );
						break;
					}
					break;
						
				case 3:
					$this->aInput = array( 'ncAtractivo', 'ncEstablecimiento', 'cdAtractivo','cAutores','cInauguracion', 'ncTipoAtractivo', 'aValores' , 'ncCaracter', 'bEspacioPublico','cHorarios', 'aRotulo' );
					break;
			}
		}
	function initializeForm()
		{
			// Si Recibe la Pk => busca los datos
				if ( $this->isRetrievable() && $this->aFields['ncAtractivo']->getValue() )
				{
					$aRow = $this->setValue( $this->aFields['ncAtractivo']->getValue() );
				}
			// Configura el Titulo
				$this->setLabel ( "Atractivo " . $aRow['cdAtractivo']);
			return true;
		}
	function initializeField( $cField , &$oField )
		{
			switch ( $cField )
			{
				case 'aValores':
					if ( $this->aFields['ncAtractivo']->getValue() )
					{
						$cSql = "SELECT Va.ncValoracion, cdValoracion, ncAtractivo FROM gcValoracion as Va
												LEFT JOIN gtAtractivoValoracion as AVa
													ON AVa.ncValoracion = Va.ncValoracion
													AND AVa.ncAtractivo = " . $this->aFields['ncAtractivo']->getValue() . "
											ORDER BY Va.cdValoracion";
					} else
					{
						$cSql = "SELECT ncValoracion, cdValoracion FROM gcValoracion";
					}
					$oField->setMatrix( $this->oDatabase->getMatrix( $cSql ) );
					$oField->setMultiple( true );
				break;
				case 'ncValoracion':
					$cSql = "SELECT ncValoracion, cdValoracion FROM gcValoracion ";
					$oField->setMatrix( $this->oDatabase->getMatrix($cSql)  );
				break;
				case 'ncCategoriaRecorrido':
					$cSql = "SELECT ncCategoriaRecorrido, cdCategoriaRecorrido FROM gcCategoriaRecorrido ";
					$oField->setMatrix( $this->oDatabase->getMatrix($cSql)  );
				break;
				case 'ncEstablecimiento':
					//$oField->setMandatory( $this->isMandatory() );
					$oField->setForm( $this );
					initializeEstablecimiento( $oField , 'Est.cdEstablecimiento=' .  str_replace( '"', '', $this->aFields['cdAtractivo']->getValue())  );
				break;
				case 'cdAtractivo':
					$oField->setMandatory( $this->isMandatory() );
					if ( $this->getOptionsLevel() != 1 ) $oField->setMultiLanguage();
					$oField->setForm( $this );
					$oField->setLength( 200 );
				break;
				case 'cAutores':
					$oField->setLength( 150 );
					if ( $this->getOptionsLevel() != 1 ) $oField->setMultiLanguage();
				break;
				case 'cInauguracion':
					$oField->setLength( 50 );
				break;
				case 'cHorarios':
					$oField->setLength( 250 );
				break;
				case 'ncCaracter':
					$cSql = "SELECT ncCaracter, cdCaracter FROM gcCaracter";
					$oField->setMatrix( $this->oDatabase->getMatrix($cSql)  );
					 $oModDoc =& loadModule('documentacion');
					$oField->addAction( 2, '?mo=documentacion&ac=57&cModuleTable=git|gcCaracter', URL_IMAGES . '/agregar.gif');
				break;
				case 'ncTipoAtractivo':
					$cSql = "SELECT ncTipoAtractivo, cdTipoAtractivo FROM gcTipoAtractivo ORDER BY 2";
					$oField->setMatrix( $this->oDatabase->getMatrix($cSql)  );
				break;
				case 'ncTipoCartel':
					$cSql = "SELECT ncTipoCartel, cdTipoCartel FROM gcTipoCartel ORDER BY 2";
					$oField->setMatrix( $this->oDatabase->getMatrix($cSql)  );
					$oModDoc =& loadModule('documentacion');
					$oField->addAction( 2, '?mo=documentacion&ac=57&cModuleTable=git|gcTipoCartel', URL_IMAGES . '/agregar.gif');
				break;
				case 'bImperdible':
					$oField->setBool();
				break;
				case 'bEspacioPublico':
					$oField->setDefault(0);
					$oField->setBool();
				break;
				case 'cDescripcion':
					if ( $this->getOptionsLevel() != 1 ) $oField->setMultiLanguage();
					//$oField->setEditor();
					//$oField->setLength(4096);
					$oField->setWidth(550);
				break;
				case 'aRotulo':
					if ($this->aFields['ncAtractivo']->getValue()  )
					{
						$cSql = "SELECT Par.ncRotulo, Par.cdRotulo, Tab.ncAtractivo
											FROM gtRotuloAtractivo as Par
												LEFT JOIN gtAtractivoRotulo as Tab
													ON Par.ncRotulo = Tab.ncRotulo
													AND Tab.ncAtractivo = " . $this->aFields['ncAtractivo']->getValue()  . "
											ORDER BY Par.cdRotulo";
					} else
					{
						$cSql = "SELECT ncRotulo, cdRotulo
											FROM gtRotuloAtractivo";
					}
					$oField->setMatrix( $this->oDatabase->getMatrix( $cSql ) );
					$oField->setMultiple( true );
				break;
			}
		}
	}
?>
